home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK2.toast / Development Kits (Disc 2) / TEC 1.2.1 / Headers & Libs / Interfaces / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-18  |  6.6 KB  |  146 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        TextEncodingConverter.h
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces.
  5.  
  6.      Copyright:    © 1984-1997 by Apple Computer, Inc.
  7.                  All rights reserved.
  8.  
  9. */
  10. #ifndef __TEXTENCODINGCONVERTER__
  11. #define __TEXTENCODINGCONVERTER__
  12.  
  13. #ifndef __TYPES__
  14. #include <Types.h>
  15. #endif
  16. #ifndef __MIXEDMODE__
  17. #include <MixedMode.h>
  18. #endif
  19. #ifndef __TEXTCOMMON__
  20. #include <TextCommon.h>
  21. #endif
  22.  
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26.  
  27. #if PRAGMA_IMPORT_SUPPORTED
  28. #pragma import on
  29. #endif
  30.  
  31. #if PRAGMA_ALIGN_SUPPORTED
  32. #pragma options align=mac68k
  33. #endif
  34.  
  35. typedef OSType TECPluginSignature;
  36. typedef UInt32 TECPluginVersion;
  37. /* plugin signatures */
  38.  
  39. enum {
  40.     kTECSignature                = 'encv',
  41.     kTECUnicodePluginSignature    = 'puni',
  42.     kTECJapanesePluginSignature    = 'pjpn',
  43.     kTECChinesePluginSignature    = 'pzho',
  44.     kTECKoreanPluginSignature    = 'pkor'
  45. };
  46.  
  47. /* converter object reference */
  48. typedef struct OpaqueTECObjectRef* TECObjectRef;
  49. typedef struct OpaqueTECSnifferObjectRef* TECSnifferObjectRef;
  50. typedef OSType TECPluginSig;
  51. struct TECConversionInfo {
  52.     TextEncoding                     sourceEncoding;
  53.     TextEncoding                     destinationEncoding;
  54.     UInt16                             reserved1;
  55.     UInt16                             reserved2;
  56. };
  57. typedef struct TECConversionInfo TECConversionInfo;
  58.  
  59. /* return number of encodings types supported by user's configuraton of the encoding converter */
  60. extern pascal OSStatus TECCountAvailableTextEncodings(ItemCount *numberEncodings);
  61.  
  62. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  63. extern pascal OSStatus TECGetAvailableTextEncodings(TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  64.  
  65. /* return number of from-to encoding conversion pairs supported  */
  66. extern pascal OSStatus TECCountDirectTextEncodingConversions(ItemCount *numberOfEncodings);
  67.  
  68. /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */
  69. extern pascal OSStatus TECGetDirectTextEncodingConversions(TECConversionInfo availableConversions[], ItemCount maxAvailableConversions, ItemCount *actualAvailableConversions);
  70.  
  71. /* return number of encodings a given encoding can be converter into */
  72. extern pascal OSStatus TECCountDestinationTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings);
  73.  
  74. /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */
  75. extern pascal OSStatus TECGetDestinationTextEncodings(TextEncoding inputEncoding, TextEncoding destinationEncodings[], ItemCount maxDestinationEncodings, ItemCount *actualDestinationEncodings);
  76.  
  77. /* get info about a text encoding */
  78. extern pascal OSStatus TECGetTextEncodingInternetName(TextEncoding textEncoding, Str255 encodingName);
  79.  
  80. extern pascal OSStatus TECGetTextEncodingFromInternetName(TextEncoding *textEncoding, ConstStr255Param encodingName);
  81.  
  82. /* create/dispose converters */
  83. extern pascal OSStatus TECCreateConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding);
  84.  
  85. extern pascal OSStatus TECCreateConverterFromPath(TECObjectRef *newEncodingConverter, const TextEncoding inPath[], ItemCount inEncodings);
  86.  
  87. extern pascal OSStatus TECDisposeConverter(TECObjectRef newEncodingConverter);
  88.  
  89. /* convert text encodings */
  90. extern pascal OSStatus TECClearConverterContextInfo(TECObjectRef encodingConverter);
  91.  
  92. extern pascal OSStatus TECConvertText(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength);
  93.  
  94. extern pascal OSStatus TECFlushText(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength);
  95.  
  96. /* one-to-many routines */
  97. extern pascal OSStatus TECCountSubTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings);
  98.  
  99. extern pascal OSStatus TECGetSubTextEncodings(TextEncoding inputEncoding, TextEncoding subEncodings[], ItemCount maxSubEncodings, ItemCount *actualSubEncodings);
  100.  
  101. extern pascal OSStatus TECGetEncodingList(TECObjectRef encodingConverter, ItemCount *numEncodings, Handle *encodingList);
  102.  
  103. extern pascal OSStatus TECCreateOneToManyConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, ItemCount numOutputEncodings, const TextEncoding outputEncodings[]);
  104.  
  105. extern pascal OSStatus TECConvertTextToMultipleEncodings(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns);
  106.  
  107. extern pascal OSStatus TECFlushMultipleEncodings(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns);
  108.  
  109. /* international internet info */
  110. extern pascal OSStatus TECCountWebTextEncodings(RegionCode locale, ItemCount *numberEncodings);
  111.  
  112. extern pascal OSStatus TECGetWebTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  113.  
  114. extern pascal OSStatus TECCountMailTextEncodings(RegionCode locale, ItemCount *numberEncodings);
  115.  
  116. extern pascal OSStatus TECGetMailTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  117.  
  118. /* examine text encodings */
  119. extern pascal OSStatus TECCountAvailableSniffers(ItemCount *numberOfEncodings);
  120.  
  121. extern pascal OSStatus TECGetAvailableSniffers(TextEncoding availableSniffers[], ItemCount maxAvailableSniffers, ItemCount *actualAvailableSniffers);
  122.  
  123. extern pascal OSStatus TECCreateSniffer(TECSnifferObjectRef *encodingSniffer, TextEncoding testEncodings[], ItemCount numTextEncodings);
  124.  
  125. extern pascal OSStatus TECSniffTextEncoding(TECSnifferObjectRef encodingSniffer, TextPtr inputBuffer, ByteCount inputBufferLength, TextEncoding testEncodings[], ItemCount numTextEncodings, ItemCount numErrsArray[], ItemCount maxErrs, ItemCount numFeaturesArray[], ItemCount maxFeatures);
  126.  
  127. extern pascal OSStatus TECDisposeSniffer(TECSnifferObjectRef encodingSniffer);
  128.  
  129. extern pascal OSStatus TECClearSnifferContextInfo(TECSnifferObjectRef encodingSniffer);
  130.  
  131.  
  132. #if PRAGMA_ALIGN_SUPPORTED
  133. #pragma options align=reset
  134. #endif
  135.  
  136. #if PRAGMA_IMPORT_SUPPORTED
  137. #pragma import off
  138. #endif
  139.  
  140. #ifdef __cplusplus
  141. }
  142. #endif
  143.  
  144. #endif /* __TEXTENCODINGCONVERTER__ */
  145.  
  146.